define(function(require,exports,module){
    var G = require('./g');
    var $ = require('zepto');
    var wx=require('./wx');
    
    function comment(){
    	this.init.call(this);
    }
    comment.prototype = {
    	init:function(){
    		this.initEvent();//初始化事件
    		this.pageSize = 10;//定义每页数量大小
    		this.lastId = 0;//记录当前页最后一条数据ID，用于分页
    		this.hadData = true ; //是否还有数据请求
    		this.getDataBtn = true;//是否正在请求数据，避免重复发送请求
    		this.wxShare();//初始化微信分享
    		this.articleId = G.getUrlValue('id');//获取文章ID；
    		this.articleType = G.getUrlValue('type');//文章类型 默认0图片，1:视频，2:心得，3:产品
    		this.getComment();//获取评论列表
    		this.commentBtn = $('#sureCommentBtn');//提交评论按钮
    		this.input = $("#commentInput");
    		this.commented = {//记录被评论人信息
    			id : '',
    			head : '',
    			name : '',
    			pId : ''
    		}
    	},
    	initEvent:function(){
    		var _this = this;
    	    //提示分享显示与隐藏
    	    function tipShareShow(){
    	    	$('.pop-bg').show();
    	    	$('.share-tip').show();
    	    }
    	    $('#shareBtn').click(function(){
    	    	tipShareShow();
    	    })
    	    $('#toShare').click(function(){
    	    	tipShareShow();
    	    })
    	    $('.share-tip').click(function(){
				G.shareTipHide();
    	    });
    	    $('.pop-bg').click(function(){
				G.shareTipHide();
    	    })
    	    //我要评论按钮
    	    $('#iWantComment').click(function(){
    	    	_this.commented = {//清空被评论人信息
	    			id : '',
	    			head : '',
	    			name : '',
	    			pId : ''
	    		};
    	    	_this.input.attr('placeholder','燕过留痕，人过留名');
    	    });
    	    //发表评论
    	    $("#sureCommentBtn").click(function(){
    	    	var data = {
    	    			type : 0,
        	    		text : _this.input.val()
    	    		};
    	    	_this.publishComment(data);//去发表评论
    	    });
    	    //注册回复评论事件
    	    $(document).on('click','#commentList .btn',function(){
    	    	var name = $(this).attr('data-name');
    	    	var id = $(this).attr('data-id');
    	    	var head = $(this).next('.tx').attr('src');
    	    	var pId = $(this).parents('li').attr('data-id');
    	    	_this.input.attr('placeholder','@'+name);
    	    	_this.commented = {//记录被评论人信息
    	    			id : id,
    	    			head : head,
    	    			name : name,
    	    			pId : pId
    	    		}
    	    	$('#commentInput').focus();//调起输入键盘
    	    });
    	    $(window).scroll(function(){
		    	var dh=$(document).height();
				var wh=$(window).height();
				if($(window).scrollTop()+wh>dh-20&&_this.hadData&&_this.getDataBtn){
					_this.getDataBtn=false;
					_this.getComment();
				}
		    })
    	},
    	getComment : function(){
    		var _this = this;
    		if(typeof _this.articleId == 'undefined' || _this.articleId == ''){
    			G.tip('文章ID为空！');
    			return false;
    		}else if(typeof _this.articleType == 'undefined'){
    			G.tip('文章类型不能为空');
    			return false;
    		}
    		G.loading();
			G.ajax_common({
				url :'/comment/findList',
				data : {
					article : _this.articleId,
					size : _this.pageSize,
					pageid : _this.lastId
				},
				errorMsg : '数据请求失败，请重试',
				success : function(json){
					if(json.data.length >= _this.pageSize){ //判断是否还有下一页
						//_this.lastId = json.data[json.data.length - 1].parentId; //获取最后一条数据的id,用于下一次分页
						_this.lastId = json.data.filter(function(i){
							return i.parentId == 0;
						}).reverse()[0].id;
					}else{
						G.tip('数据已全部加载完毕');
						G.loadingHide();
						_this.hadData = false;
					}
					$.each(json.data,function(i,v){//渲染数据列表
						_this.renderComment(v);
					});
					_this.getDataBtn = true;
				},
				error : function(){
					G.loadingHide().tip('数据请求失败，请重试');
					_this.getDataBtn = true;
					return false;
				}
			});
    	},
    	renderComment : function(data,callback){
    		G.loading();
    		var html = '';
    		var head = typeof data.userHead == 'undefined'?'images/logo.png':data.userHead;
    		if(data.category == 0){//评论
    			var nickHtml = '';
    			if(data.targetId == 0){ //一级评论
    				nickHtml = '<span>'+data.userName+'</span>';
    				html += '<li id="commentItem_'+data.id+'" data-id="'+data.id+'">';
    			}else{ //二级评论
    				nickHtml = '<span>'+data.userName+' 对 '+data.targetName+' 说</span>';
    			}
				html +=		'<div class="com-cont" data-id="'+data.id+'">'+
								'<div class="tit">'+
									'<a href="javascript:;" class="btn" data-id="'+data.userId+'" data-name="'+data.userName+'"><img src="images/detail_44.png" width="31" /></a>'+
									'<img src="'+head+'" class="tx" />'+
									nickHtml+
								'</div>'+
								'<div class="comment">'+
									'<img src="images/detail_48.png" width="10" class="deco" />'+data.content+
								'</div>'+
								'<div class="mt10 fix"><span class="fr time">'+G.time_format(data.createTime)+'</span></div>'+
							'</div>';
    			if(data.targetId == 0){//一级评论，直接发表的评论
    				html += '</div>';
    				if(data.isHead){ //直接发表评论时，会将此值设定为true
    					$('#commentList').prepend(html);
    				}else{
    					$('#commentList').append(html);
    					
    				}
    			}else{//二级评论，回复别人的评论
    				$("#commentItem_"+data.parentId).append(html);
    			}
				
    		}else if(data.category == 1){//1点赞
    			html = '<li id="commentItem_'+data.id+'" data-id="'+data.id+'">'+
							'<div class="com-cont">'+
								'<div class="tit">'+
									'<a href="javascript:;" class="btn" data-id="'+data.userId+'" data-name="'+data.userName+'"><img src="images/detail_44.png"  width="31" /></a>'+
									'<img src="'+head+'" class="tx" />'+
									'<span>'+data.userName+'</span>'+
									'<span class="time">'+G.time_format(data.createTime)+'</span>'+
								'</div>'+
								'<div class="comment">'+
									'<img src="images/detail_48.png" width="10" class="deco" />'+
									'<div class="agree">'+
										'赞了这篇文章'+
									'</div>'+
								'</div>'+
							'</div>'+
						'</li>';
    			$('#commentList').append(html);
    		}else{//2打赏
    			html = '<li id="commentItem_'+data.id+'" data-id="'+data.id+'">'+
							'<div class="com-cont">'+
								'<div class="tit">'+
									'<a href="javascript:;" class="btn" data-id="'+data.userId+'" data-name="'+data.userName+'"><img src="images/detail_44.png"  width="31" /></a>'+
									'<img src="'+head+'" class="tx" />'+
									'<span>'+data.userName+'</span>'+
									'<span class="time">'+G.time_format(data.createTime)+'</span>'+
								'</div>'+
								'<div class="comment">'+
									'<img src="images/detail_48.png" width="10" class="deco" />'+
									'<div class="money">'+
										'打赏了一个红包'+
									'</div>'+
								'</div>'+
							'</div>'+
						'</li>';
				$('#commentList').append(html);
    		}
    		G.loadingHide();
    		if(typeof callback == 'function'){
    			callback.call(this);
    		}
    	},
    	publishComment : function(sData){//发表评论
    		if(sData.text == ''){
    			G.tip('请输入内容');
    			return false;
    		}
    		var _this = this;
    		if(sData.type == 0){ //发表评论
    			var submitData = {
    					articleId : _this.articleId,
    					articleType : _this.articleType,
		    			content : sData.text, //评论内容
		    			category : 0 //0为发表评论
    			};
        		if(_this.commented.pId != ''){ //是否有被评论人
        			var submitData = {
        					articleId : _this.articleId,
        					articleType : _this.articleType,
    		    			content : sData.text, //评论内容
    		    			category : 0 ,//0为发表评论
    		    			parentId : _this.commented.pId, //被回复评论父ID
	       	    			targetId : _this.commented.id, //被回复人ID
	       	    			targetHead	: _this.commented.head, //被回复人头像
	       	    			targetName : _this.commented.name, //被回复人姓名
        			};
        		}
    		}
    		G.loading();
    		G.ajax({
    			url : '/comment/findOP',
    			data : submitData,
    			success : function(json){
    				//判断出是直接发表评论，不是回复别人,用于在渲染页面时作区分，直接发表会显示在留言顶部
					//回复显示在父评论下的最后一条
					if(sData.type == 0 && _this.commented.pId == ''){ 
						json.data.comment.isHead = true;
					}
					_this.renderComment(json.data.comment,function(){
						if($('#noCommentTip').is(':visible')){
							$('#noCommentTip').hide();//隐藏无评论提示
						}
						_this.emptyComment();//清空被评论人记录的信息,初始化input框和提交按钮
						var num = Number($('#newCommentNum').text());
						$('#newCommentNum').text(num+1);
						G.tip('操作成功');
						//如果为一级评论，则回到首页顶部，二级评论则不用
						if(json.data.comment.isHead){
							$(window).scrollTop(0);
						}
					});
    			}
    		});
    	},
    	emptyComment : function(){ 
    		this.commented = {//清空被评论人信息
	    			id : '',
	    			head : '',
	    			name : '',
	    			pId : ''
	    	};
    		$('#sureCommentBtn').attr('href','#comment'); //重置评论按钮指向评论列表顶部
    		this.input.val('').attr('placeholder','燕过留痕，人过留名');//初始化输入框提示文字
    	},
    	wxShare : function(){
			G.wxFun({
				ready : function(weixin){
					weixin.hideAllNonBaseMenuItem();
				}
			});
		}
    }
    var C = new comment();
});